home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / game / nip_203b / nippathi.bas < prev    next >
Encoding:
BASIC Source File  |  1994-11-16  |  50.0 KB  |  1,128 lines

  1. 10 '                                                        nippathi.bas
  2. 20 '--------------------------------------------------------------------
  3. 30 '
  4. 40 '
  5. 50 '     に っ ぱ ち      Ver 2.03 b
  6. 60 '
  7. 70 '
  8. 80 '
  9. 90 '                                          Programed by  Hoshitora.
  10. 100 '
  11. 110 '
  12. 120 '--------------------------------------------------------------------
  13. 130 *SETUP0 
  14. 140 STOP OFF
  15. 150 QPL$=STR$(INP(&H5EC) MOD 2)
  16. 160 VER$="2.03 b"
  17. 170 SCREEN@0 : PLAY OFF
  18. 180 ON ERROR GOTO 10660
  19. 190 CLEAR ,,1024/4,1024*300
  20. 200 QPL$=STR$(INP(&H5EC) MOD 2) 
  21. 210 VER$="2.03 b" : DEFINT A-Z
  22. 220 ON ERROR GOTO 10660
  23. 230 SHELL"CD DATFILES"
  24. 240 SCREEN@2 : LOAD@ "INIT2.TIF",(700,0)
  25. 250 SHELL "CD ..\MUSFILES" :LOAD@ "NIPPATHI.PMB":LOAD@ "TORA03.FMB"
  26. 260 DIM A%(40000):LOAD@"radetzky.EUP",A%,1
  27. 270 STOP OFF:ON ERROR GOTO 10660
  28. 280 '--------------------------------------------------------------------
  29. 290 CHKPLAY=0
  30. 300 '--------------------------------------------------------------------
  31. 310 SHELL "CD .." : OPEN "I",#1,"NIPPATHI.CFG" 
  32. 320 DIM USER(4),SET$(4),USERDATCK(5)
  33. 330 FOR X=0 TO 4 : INPUT#1,SET$(X)
  34. 340 USER(X)=VAL(KMID$(SET$(X),17,255)) : NEXT
  35. 350     '-------------------------
  36. 360 ON (0=<USER(0))*(USER(0)<=3) GOTO 380
  37. 370 USERDATCK(0)=1
  38. 380 ON (((USER(1)=0)+(USER(1)=3)+(USER(1)=5))*-1) GOTO 400
  39. 390 USERDATCK(1)=1
  40. 400 ON ((USER(2) MOD 21=0)*-1) GOTO 420
  41. 410 USERDATCK(2)=1
  42. 420 ON (1=<USER(3))*(USER(3)<=2) GOTO 440
  43. 430 USERDATCK(3)=1
  44. 440 ON (USER(4)>=0)*-1 GOTO 470
  45. 450 USERDATCK(4)=1
  46. 460     '-------------------------
  47. 470 FOR X=0 TO 4 : USERDATCK(5)=USERDATCK(5)+USERDATCK(X) : NEXT
  48. 480 USER(0)=USER(0)*(USERDATCK(0)=0)*-1 + (USERDATCK(0)=1)*-2
  49. 490 USER(1)=USER(1)*(USERDATCK(1)=0)*-1 + (USERDATCK(1)=1)*-3
  50. 500 USER(2)=USER(2)*(USERDATCK(2)=0)*-1 + (USERDATCK(2)=1)*-63
  51. 510 USER(3)=USER(3)*(USERDATCK(3)=0)*-1 + (USERDATCK(3)=1)*-2
  52. 520 USER(4)=USER(4)*(USERDATCK(4)=0)*-1 + (USERDATCK(4)=1)*-22
  53. 530 ON (USERDATCK(5)=0)*-1 GOTO 550
  54. 540 ERROR 99
  55. 550 USER(1)=USER(1)*-1 
  56. 560 GOSUB *SETWAIT
  57. 570    '-----------------------------------------------------------------
  58. 580 SHELL "CD DATFILES"
  59. 590 DIM TITLE0(19200),TITLE1(2242),TITLE2(2562)
  60. 600 DIM TITLE3(1482),TITLE5(842)
  61. 610 LOAD@ "TITLE0.DAT",TITLE0: LOAD@ "TITLE1.DAT",TITLE1
  62. 620 LOAD@ "TITLE2.DAT",TITLE2: LOAD@ "TITLE3.DAT",TITLE3
  63. 630 LOAD@ "TITLE5.DAT",TITLE5
  64. 640 FOR X=1 TO 9:PUT@A (0,59*(X-1))-(639,59*X),TITLE0%:NEXT
  65. 650 S!=2:GOSUB *WAIT
  66. 660 PUT@ (0,50)-(639,105),TITLE1,PSET,%51
  67. 670 PUT@ (0,115)-(639,178),TITLE2,PSET,%53
  68. 680 PUT@ (0,440)-(639,460),TITLE5,PSET,%54
  69. 690 ON FDV GOTO *SETUP1 
  70. 700 PUT@ (0,300)-(639,336),TITLE3,PSET,%55
  71. 710 '--------------------------------------------------------------------
  72. 720 VIEW (0,0)-(1023,511):WINDOW (0,0)-(1023,511)
  73. 730 '--------------------------------------------------------------------
  74. 740 DIM CARD1(363),CARD2(363),CARD3(363),CARD4(363),CARD5(363)
  75. 750 DIM CARD6(363),CARD7(363),CARD8(363),CARD9(363),CARD10(363)
  76. 760 DIM CARD11(363),CARD12(363),CARD13(363),CARD(2775),JOKER(2775)
  77. 770 DIM C1(143),C2(143),C3(143),C4(143),KYAN(87),NAGARE(571),MUKOU(214)
  78. 780 DIM PN1(71),PN2(71),PN3(71),PN4(71),PN5(71),JOKER2(2775)
  79. 790 DIM PN6(71),PN7(71),PN8(71),PN9(71),PN0(71)
  80. 800 DIM CN1(31),CN2(31),CN3(31),CN4(31),CN5(31)
  81. 810 DIM CN6(31),CN7(31),CN8(31),CN9(31),CN0(31),TEMPTIF2(5700)
  82. 820 DIM MAS1(87),MAS2(87),MAS3(87),MAS4(80),MAS5(113)
  83. 830 DIM MAS6(65),MAS7(140),MAS8(320),MAS9(360),MAS10(120)
  84. 840 DIM MAS11(190),MAS12(85),MAS13(85),IPPATHU(1300),NAGA(4,3)
  85. 850 DIM RECHI(760),NOKORI(71),PTS&(4),C(1),KATHI(990),AGARI(700)
  86. 860 DIM ATARI(830),ATARIARI(1200),DUBLE(720),TRIPLE(1020),GAESHI(570)
  87. 870 DIM FURIKOMI(960),TUBURE(760),PON(550),KAN(530),TEMPTIF(22000)
  88. 880 DIM SET01(470),SET02(400),SET03(93),SET04(110),SET05(185),SET06(95)
  89. 890 DIM SET07(170),SET08(175),SET09(395),SET10(390),SET11(420),SET12(370)
  90. 900 DIM SET13(190),SET14(450),SET15(90),SET16(380),SET17(400),SET18(152)
  91. 910    '-----------------------------------------------------------------
  92. 920 DIM CHECK(1),PTSTEMP&(1),FUDA(4),DBFRG(1),ATFRG(1),ATCK(1)
  93. 930 DIM PONFRG(1),DAT(1),TUBFRG(1),MKFRG(1),POCK(1)
  94. 940 DIM DAI(1),M(1),T(1),AT(1),PO(1),HIKI(1),PCK(1)
  95. 950 '--------------------------------------------------------------------
  96. 960 LINE (640,0)-(1023,480),PSET,%1,BF : LOAD@ "NIP_1.DAT",TEMPTIF
  97. 970 PUT@A (640,0)-(700,272),TEMPTIF
  98. 980 GET@A (640,0)-(700,90),CARD      :GET@A (640,91)-(700,181),JOKER
  99. 990 GET@A (640,182)-(700,272),JOKER2
  100. 1000       '--------------------------------------------------------------
  101. 1010 LINE (640,0)-(1023,480),PSET,%1,BF : LOAD@ "NIP_2.DAT",TEMPTIF
  102. 1020 PUT@ (640,0)-(1000,460),TEMPTIF,PSET,%9
  103. 1030 GET@ (640,0)-(724,15),MAS1,%9     :GET@ (640,16)-(724,31),MAS2,%9
  104. 1040 GET@ (640,32)-(724,47),MAS3,%9    :GET@ (640,48)-(719,63),MAS4,%9
  105. 1050 GET@ (640,64)-(703,79),MAS6,%9    :GET@ (640,80)-(739,97),MAS7,%9
  106. 1060 GET@ (640,98)-(704,115),MAS12,%9  :GET@ (640,116)-(704,133),MAS13,%9
  107. 1070 GET@ (640,134)-(663,181),PN0,%9   :GET@ (640,182)-(663,229),PN1,%9
  108. 1080 GET@ (640,230)-(663,277),PN2,%9   :GET@ (640,278)-(663,325),PN3,%9
  109. 1090 GET@ (640,326)-(663,373),PN4,%9   :GET@ (640,374)-(663,421),PN5,%9
  110. 1100 GET@ (740,0)-(763,47),PN6,%9      :GET@ (740,48)-(763,95),PN7,%9
  111. 1110 GET@ (740,96)-(763,143),PN8,%9    :GET@ (740,144)-(763,191),PN9,%9
  112. 1120 GET@ (740,192)-(755,223),CN0,%9   :GET@ (740,224)-(755,255),CN1,%9
  113. 1130 GET@ (740,256)-(755,287),CN2,%9   :GET@ (740,288)-(755,319),CN3,%9
  114. 1140 GET@ (740,320)-(755,351),CN4,%9   :GET@ (740,352)-(755,383),CN5,%9
  115. 1150 GET@ (740,384)-(755,415),CN6,%9   :GET@ (840,0)-(855,31),CN7,%9
  116. 1160 GET@ (840,32)-(855,63),CN8,%9     :GET@ (840,64)-(855,95),CN9,%9
  117. 1170 GET@ (840,96)-(900,186),CARD1,%9  :GET@ (840,187)-(900,277),CARD2,%9
  118. 1180 GET@ (840,278)-(900,368),CARD3,%9 :GET@ (840,369)-(900,459),CARD4,%9
  119. 1190 GET@ (940,0)-(1000,90),CARD5,%9   :GET@ (940,91)-(1000,181),CARD6,%9
  120. 1200 GET@ (940,182)-(1000,272),CARD7,%9:GET@ (940,273)-(1000,363),CARD8,%9
  121. 1210 GET@ (940,364)-(1000,454),CARD9,%9
  122. 1220       '--------------------------------------------------------------
  123. 1230 LINE (640,0)-(1023,480),PSET,%1,BF : LOAD@ "NIP_3.DAT",TEMPTIF
  124. 1240 PUT@ (640,0)-(940,442),TEMPTIF,PSET,%9
  125. 1250 GET@ (640,0)-(700,90),CARD10,%9   :GET@ (640,91)-(700,181),CARD11,%9
  126. 1260 GET@ (640,182)-(700,272),CARD12,%9:GET@ (640,273)-(700,363),CARD13,%9
  127. 1270 GET@ (640,364)-(709,395),C1,%9    :GET@ (640,396)-(709,427),C2,%9
  128. 1280 GET@ (740,0)-(935,36),SET01,%9    :GET@ (740,37)-(904,74),SET02,%9
  129. 1290 GET@ (740,75)-(840,100),SET08,%9  :GET@ (740,101)-(920,131),SET17,%9
  130. 1300 GET@ (740,132)-(851,147),MAS5,%9  :GET@ (740,148)-(853,163),MAS10,%9
  131. 1310 GET@ (740,164)-(885,183),MAS11,%9 :GET@ (740,184)-(913,246),AGARI,%9
  132. 1320 GET@ (740,247)-(913,316),ATARI,%9 :GET@ (740,317)-(920,377),DUBLE,%9
  133. 1330 GET@ (740,378)-(871,442),GAESHI,%9
  134. 1340       '--------------------------------------------------------------
  135. 1350 LINE (640,0)-(1023,480),PSET,%1,BF : LOAD@ "NIP_4.DAT",TEMPTIF
  136. 1360 PUT@ (640,0)-(995,450),TEMPTIF ,PSET,%9
  137. 1370 GET@ (640,0)-(709,31),C3,%9       :GET@ (640,32)-(709,63),C4,%9
  138. 1380 GET@ (640,64)-(688,89),SET03,%9   :GET@ (640,90)-(693,118),SET04,%9
  139. 1390 GET@ (640,119)-(693,142),SET05,%9 :GET@ (640,143)-(692,168),SET06,%9
  140. 1400 GET@ (640,169)-(737,193),SET07,%9 :GET@ (640,194)-(710,229),SET13,%9
  141. 1410 GET@ (640,230)-(714,272),MUKOU,%9 :GET@ (640,273)-(687,298),SET15,%9
  142. 1420 GET@ (640,299)-(736,325),SET16,%9 :GET@ (640,326)-(735,350),SET18,%9
  143. 1430 GET@ (640,351)-(687,374),NOKORI,%9:GET@ (640,375)-(722,390),KYAN,%9
  144. 1440 GET@ (740,0)-(909,36),SET14,%9    :GET@ (740,43)-(863,103),KAN,%9
  145. 1450 GET@ (740,104)-(912,155),NAGARE,%9:GET@ (740,156)-(861,219),PON,%9
  146. 1460 GET@ (740,220)-(927,281),RECHI,%9 :GET@ (740,282)-(928,343),TUBURE,%9
  147. 1470 GET@ (740,344)-(991,363),MAS8,%9 :GET@ (640,391)-(980,450),IPPATHU,%9
  148. 1480       '--------------------------------------------------------------
  149. 1490 LINE (640,0)-(1023,480),PSET,%1,BF : LOAD@ "NIP_5.DAT",TEMPTIF
  150. 1500 PUT@ (640,0)-(940,376),TEMPTIF,PSET,%9
  151. 1510 GET@ (640,0)-(892,21),MAS9,%9   :GET@ (640,22)-(872,47),SET09,%9
  152. 1520 GET@ (640,48)-(872,73),SET10,%9 :GET@ (640,74)-(897,98),SET11,%9
  153. 1530 GET@ (640,99)-(848,125),SET12,%9:GET@ (640,126)-(937,186),ATARIARI,%9
  154. 1540 GET@ (640,187)-(883,248),FURIKOMI,%9
  155. 1550 GET@ (640,249)-(874,313),KATHI,%9
  156. 1560 GET@ (640,314)-(890,376),TRIPLE,%9
  157. 1570 '--------------------------------------------------------------------
  158. 1580  SHELL "CD .."
  159. 1590 '--------------------------------------------------------------------
  160. 1600 PUT@A (0,290)-(639,349),TITLE0,PSET
  161. 1610 '--------------------------------------------------------------------
  162. 1620 DEF FNA(W)=(W-1)*110+(W=4)*(-30)
  163. 1630 DEF FNB&(W&)=INT(LOG(ABS(W&)-(W&=0))/LOG(10)+1)
  164. 1640 DEF FNC&(W&)=((W&+5)\10)*10
  165. 1650 DEF FND(W,V)=(W-1)* (((V<6)*-62)+((V>5)*(INT(-320/V))))
  166. 1660 DEF FNE(W,V)=((W-250)\(((V<6)*-62)+((V>5)*INT(-320/V))))+1
  167. 1670 DEF FNF(W)=(509<W)*(W<620)
  168. 1680 DEF FNG(W)=(345<W)*(W<360)
  169. 1690 DEF FNH(W)=(351<W)*(W<435)+(446<W)*(W<530)*2+(541<W)*(W<620)*3
  170. 1700 DEF FNI(W)=(380<W)*(W<430)+(440<W)*(W<490)*2+                                          (500<W)*(W<550)*3+(560<W)*(W<610)*4
  171. 1710 DEF FNJ(W)=(446<W)*(W<530)+(541<W)*(W<620)*2
  172. 1720  DEF FNL(A)=(75<A)*(A<135)+(165<A)*(A<275)*5+(330<A)*(A<600)*21
  173. 1730  DEF FNM(A)=(255<A)*(A<290)+(295<A)*(A<330)*2+(335<A)*(A<370)*3+(375<A)*(A<410)*4
  174. 1740  DEF FNN(A,B)=(140<B)*(B<180)*(495<A)*(A<605)
  175. 1750  DEF FNO(A,B)=(425<B)*(B<460)*((368<A)*(A<425)+(448<A)*(A<505)*2)
  176. 1760 '--------------------------------------------------------------------
  177. 1770 *SETUP1
  178. 1780 ON (PAD(1)=0)*(PTRIG(1)=<3) GOTO 1800
  179. 1790 GOTO 1780
  180. 1800 MOUSE 0:MOUSE 4,0,0,639,479 : KPL=1
  181. 1810 MOUSE 2,CHR$(251,255,241,255,224,255,192,127,128,63,0,31,224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255),CHR$(0,0,4,0,14,0,31,0,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,0,0),5,0
  182. 1820 MOUSE 1,320,252,1:DEF PEN 0,1
  183. 1830 ON ERROR GOTO 10660
  184. 1840 ON MOUSE(3) GOSUB *STFRG2:ON MOUSE(1) GOSUB *STFRG1
  185. 1850 PUT@A (0,290)-(639,349),TITLE0
  186. 1860 LINE (220,225)-(425,270),PSET,%56,BF
  187. 1870 PUT@ (226,231)-(421,267),SET01,PSET,%71
  188. 1880 LINE (220,305)-(425,350),PSET,%56,BF
  189. 1890 PUT@ (241,310)-(405,347),SET02,PSET,%71
  190. 1900 LINE (220,385)-(425,430),PSET,%56,BF
  191. 1910 PUT@ (235,393)-(415,423),SET17,PSET,%71
  192. 1920   LINE (220,225)-(425,270),PSET,%64,B
  193. 1930 MOUSE(3) ON:MOUSE(1) ON:ON ERROR GOTO 10660
  194. 1940 ON (FRG=0)*-1 GOTO 1940
  195. 1950 MOUSE(3) OFF:MOUSE(1) OFF:ON FRG GOTO 2130,*USERSET,*EN
  196. 1960  *STFRG1
  197. 1970   FS0=MOUSE(0):FS1=MOUSE(1)
  198. 1980   FRP=(220<FS0)*(FS0<425)*((225<FS1)*(FS1<270)+2*(305<FS1)*(FS1<350)+3*(385<FS1)*(FS1<430))
  199. 1990    LINE (220,225)-(425,270),PSET,%82,B
  200. 2000    LINE (220,305)-(425,350),PSET,%82,B
  201. 2010    LINE (220,385)-(425,430),PSET,%82,B
  202. 2020    ON (FRP=0)*-1 GOTO 2040
  203. 2030    LINE (220,225+(FRP-1)*80)-(425,270+(FRP-1)*80),PSET,%64,B
  204. 2040  RETURN
  205. 2050  *STFRG2
  206. 2060   FR0=MOUSE(4,0):FR1=MOUSE(5,0)
  207. 2070   FRG=(220<FR0)*(FR0<425)*((225<FR1)*(FR1<270)+2*(305<FR1)*(FR1<350)+3*(385<FS1)*(FS1<430))
  208. 2080   FR0=MOUSE(7,0):FR1=MOUSE(8,0)
  209. 2090   FRF=(220<FR0)*(FR0<425)*((225<FR1)*(FR1<270)+2*(305<FR1)*(FR1<350)+3*(385<FS1)*(FS1<430))
  210. 2100   FRG=(FRG=FRF)*-1*FRG
  211. 2110  RETURN
  212. 2120    '-----------------------------------------------------------------
  213. 2130 ON (PAD(1)=0)*(PTRIG(1)=<3) GOTO 2150
  214. 2140 GOTO 2130
  215. 2150 MOUSE 0 : KPL=1
  216. 2160 MOUSE 2,CHR$(224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255,224,255,0,31,128,63,192,127,224,255,241,255,251,255),CHR$(0,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,31,0,14,0,4,0,0,0),5,15
  217. 2170 ON MOUSE(3) GOSUB *CARDGET:ON MOUSE(4) GOSUB *ENDCK1
  218. 2180 MOUSE(3) OFF : MOUSE(4) OFF:STOP OFF : AGA=1
  219. 2190 LINE (0,0)-(640,480),PSET,%40,BF
  220. 2200 S!=3:GOSUB *WAIT:MOUSE 1,260,380,1:MOUSE(4) ON:S!=3:GOSUB *WAIT
  221. 2210 ON ERROR GOTO 10660
  222. 2220 OUT &H5EC,0
  223. 2230 DEBUG=(PTRIG(1)=3)*-1
  224. 2240 '--------------------------------------------------------------------
  225. 2250 *SETUP2
  226. 2260 GOSUB *SETWAIT
  227. 2270 MOUSE(4) OFF
  228. 2280  ERASE CHECK,PTSTEMP&,FUDA,DBFRG,ATFRG,ATCK,PONFRG,DAT,TUBFRG,DAI
  229. 2290  ERASE MKFRG,M,T,AT,PO,HIKI,POCK
  230. 2300     '----------------------------------------------------------------
  231. 2310  DIM CHECK(52+USER(0)),PTSTEMP&(4),FUDA(4),DBFRG(4,0),ATFRG(4)
  232. 2320  DIM PONFRG(4,15),DAT(5,40,1),TUBFRG(4),DAI(2),MKFRG(4,5),M(4,5),T(4)
  233. 2330  DIM PO(4),AT(4),HIKI(1),POCK(4),ATCK(4)
  234. 2340 REST=52+USER(0):Z=AGA:NOKO=0:AGA=0:E=0:IL=0
  235. 2350 MOUSE(4) ON
  236. 2360 ON ERROR GOTO 10660
  237. 2370 RANDOMIZE TIME 
  238. 2380     '----------------------------------------------------------------
  239. 2390  LINE (238,0)-(640,480),PSET,%40,BF
  240. 2400  LINE (0,149)-(165,480),PSET,%40,BF
  241. 2410  LINE (89,111)-(141,147),PSET,%40,BF
  242. 2420  PUT@ (170,27)-(239,58),C1,PSET,%63
  243. 2430  PUT@ (170,137)-(239,168),C2,PSET,%63
  244. 2440  PUT@ (170,247)-(239,278),C3,PSET,%63
  245. 2450  PUT@ (170,387)-(239,418),C4,PSET,%63
  246. 2460 FOR W=1 TO 4
  247. 2470  POINT (174,60+FNA(W))
  248. 2480  LINE STEP(0,0)-STEP(56,16),PSET,%41,BF
  249. 2490  ON ((FNB&(PTS&(W))>5)*-1)+1 GOTO 2530,2500
  250. 2500   ON (PTS&(W)>0)*-1 GOTO 2520 
  251. 2510     U$=" - ∞ " :GOTO 2540
  252. 2520     U$=" + ∞ " :GOTO 2540
  253. 2530   U$=SPACE$(5-FNB&(PTS&(W)))+STR$(PTS&(W))
  254. 2540  SYMBOL (178,60+FNA(W)),U$,1,1,%19
  255. 2550 NEXT
  256. 2560 X=50:Y=150:GOSUB *PRIN_1
  257. 2570 PUT@ (40,120)-(87,143),NOKORI,PSET,%19 : S!=1 : GOSUB *WAIT
  258. 2580    '-----------------------------------------------------------------
  259. 2590 ON (PTS&(4)=<-1000)*(CHKPLAY=0) GOSUB *ENDCK2
  260. 2600    '-----------------------------------------------------------------
  261. 2610 MOUSE(4) OFF : FOR K=1 TO 5:FOR R=Z-1 TO Z+2:P=(R MOD 4)+1
  262. 2620 RRD=2:GOSUB *CARD:C=0:CTR=1:GOSUB *PRINTING:GOSUB *RESTPRIN:CTR=0
  263. 2630 OUTM #255,&H9C,60,0:OUTM #255,&HBC,&H0A,&H40:OUTM #255,&HBC,&H07,&H7F
  264. 2640 OUTM #255,&HCC,&H03  :OUTM #255,&H9C,60,70:S!=.5!:GOSUB *WAIT
  265. 2650 NEXT: NEXT:RRD=1
  266. 2660 IL=1:FOR P=1 TO 4 :GOSUB *FRG:NEXT:IL=0
  267. 2670 GOTO *NAGACK
  268. 2680 MOUSE(4) ON
  269. 2690 S!=2:GOSUB *WAIT:GOSUB *START:AI=2 
  270. 2700 S!=2:GOSUB *WAIT:GOTO *HANTEI
  271. 2710    '-----------------------------------------------------------------
  272. 2720 AI=1
  273. 2730 GOSUB *CHOICE
  274. 2740 ON (G=0)*-1 GOTO *HANTEI
  275. 2750 Z=(Z MOD 4)-1*(AI=1)
  276. 2760 GOTO 2720
  277. 2770 '--------------------------------------------------------------------
  278. 2780 *PRIN_1
  279. 2790 ON (RRD<>2)*-1 GOTO 2810
  280. 2800 XTM=X:YTM=Y:OPL=1:GOSUB 2860:X=XTM:Y=YTM:OPL=0
  281. 2810 PUT@A (X,Y)-(X+60,Y+90),CARD,PSET:RETURN
  282. 2820 '--------------------------------------------------------------------
  283. 2830 *PRIN_4
  284. 2840 ON (M=0)*-1 GOTO 3090
  285. 2850 ON CTR+1 GOTO 2870,2860
  286. 2860 XT=X:X=700:YT=Y:Y=0:LINE (700,0)-(800,100),PSET,%40,BF
  287. 2870 M=M-4*(C<>0):LINE (X+1,Y+1)-(X+59,Y+89),PSET,%M+30,BF
  288. 2880 PSET(X+1,Y+1),%40 : PSET(X+1,Y+89),%40
  289. 2890 PSET(X+59,Y+1),%40 : PSET(X+59,Y+89),%40
  290. 2900 ON OPL GOTO 3120
  291. 2910 ON N+1 GOTO 2930,2960,2970,2980,2990,3000,3010,3020,3030,3040,3050,3060,3070,3080,2930
  292. 2920 GOTO 3090
  293. 2930 ON M\9 GOTO 2950
  294. 2940 PUT@A (X,Y)-(X+60,Y+90),JOKER,MATTE,1,1,%40 :GOTO 3090
  295. 2950 PUT@A (X,Y)-(X+60,Y+90),JOKER2,MATTE,1,1,%40:GOTO 3090
  296. 2960 PUT@ (X,Y)-(X+60,Y+90),CARD1,PSET,%M+20:GOTO 3090
  297. 2970 PUT@ (X,Y)-(X+60,Y+90),CARD2,PSET,%M+20:GOTO 3090
  298. 2980 PUT@ (X,Y)-(X+60,Y+90),CARD3,PSET,%M+20:GOTO 3090
  299. 2990 PUT@ (X,Y)-(X+60,Y+90),CARD4,PSET,%M+20:GOTO 3090
  300. 3000 PUT@ (X,Y)-(X+60,Y+90),CARD5,PSET,%M+20:GOTO 3090
  301. 3010 PUT@ (X,Y)-(X+60,Y+90),CARD6,PSET,%M+20:GOTO 3090
  302. 3020 PUT@ (X,Y)-(X+60,Y+90),CARD7,PSET,%M+20:GOTO 3090
  303. 3030 PUT@ (X,Y)-(X+60,Y+90),CARD8,PSET,%M+20:GOTO 3090
  304. 3040 PUT@ (X,Y)-(X+60,Y+90),CARD9,PSET,%M+20:GOTO 3090
  305. 3050 PUT@ (X,Y)-(X+60,Y+90),CARD10,PSET,%M+20:GOTO 3090
  306. 3060 PUT@ (X,Y)-(X+60,Y+90),CARD11,PSET,%M+20:GOTO 3090
  307. 3070 PUT@ (X,Y)-(X+60,Y+90),CARD12,PSET,%M+20:GOTO 3090
  308. 3080 PUT@ (X,Y)-(X+60,Y+90),CARD13,PSET,%M+20:GOTO 3090
  309. 3090 ON CTR+1 GOTO 3120,3100
  310. 3100 X=XT:Y=YT:GET@A (700,0)-(760,90),TEMPTIF
  311. 3110 PUT@A (X,Y)-(X+60,Y+90),TEMPTIF,MATTE,1,1,%40
  312. 3120 RETURN
  313. 3130 '--------------------------------------------------------------------
  314. 3140 *PRINTING
  315. 3150 ON (FUDA(P)=0)*-1 GOTO 3190
  316. 3160 ON RRD GOTO 3170,3180
  317. 3170 X=640+FND(K,FUDA(P)):Y=15:GOTO 3190
  318. 3180 X=250+FND(K,FUDA(P)):Y=15+FNA(P)
  319. 3190 N=DAT(P,K,1):M=DAT(P,K,0)
  320. 3200 ON (M=0)*-1 GOTO 3240
  321. 3210 ON (DEBUG=1)+1 GOTO 3230
  322. 3220 GOSUB *PRIN_4 : GOTO 3240
  323. 3230 ON (((P=4)+(TUBFRG(P)=1)+(E<>0)=0)*-1)+1 GOSUB *PRIN_4,*PRIN_1
  324. 3240 RETURN
  325. 3250 '--------------------------------------------------------------------
  326. 3260 *CARD
  327. 3270 TUBFRG(P)=(REST=0)*-1
  328. 3280 ON TUBFRG(P) GOTO 3340
  329. 3290 W=INT(RND(1)*(52+USER(0))) :ON CHECK(W) GOTO 3260 
  330. 3300 DAT(P,K,0)=(W\13+1)*(W<52)*-1-(W>51)*5 
  331. 3310 DAT(P,K,1)=((W MOD 13)+1)*(W<52)*-1-(W>51)*14
  332. 3320 FUDA(P)=FUDA(P)+1
  333. 3330 CHECK(W)=1:REST=REST-1
  334. 3340 RETURN
  335. 3350 '--------------------------------------------------------------------
  336. 3360 *START
  337. 3370 ON PLAY(0)*-1 GOTO 3390
  338. 3380 PLAY@ A%,1
  339. 3390 W=INT(RND(-1*RND(1))*(52+USER(0))) :ON (CHECK(W)=1)*-1 GOTO 3390
  340. 3400 DAI(1)=W\13+1:DAI(2)=((W MOD 13)+1)*(W<52)*(-1)
  341. 3410 DAI(0)=0:X=50:Y=260:CTR=1:M=DAI(1):N=DAI(2):GOSUB *PRIN_4:CTR=0
  342. 3420 OUTM #255,&H9C,60,0:OUTM #255,&HBC,&H0A,&H40:OUTM #255,&HBC,&H07,&H7F
  343. 3430 OUTM #255,&HCC,&H03 :OUTM #255,&H9C,60,90
  344. 3440 I=DAI(2):ON ((I-2)*(I-8)*(I-11)*(I-0)=0)*-1 GOTO 3470
  345. 3450 REST=REST-1:CHECK(W)=1 :GOSUB *RESTPRIN:RETURN
  346. 3460    '-----------------------------------------------------------------
  347. 3470 REST=REST-1 :GOSUB *RESTPRIN:S!=3:GOSUB *WAIT
  348. 3480 PUT@ (43,351)-(117,393),MUKOU,PSET,%62:S!=5:GOSUB *WAIT
  349. 3490 LINE (40,250)-(110,350),PSET,%40,BF
  350. 3500 REST=REST+1 :GOSUB *RESTPRIN:S!=2:GOSUB *WAIT
  351. 3510 LINE (43,351)-(117,393),PSET,%40,BF
  352. 3520 RANDOMIZE TIME : S!=2:GOSUB *WAIT
  353. 3530 GOTO *START
  354. 3540 '--------------------------------------------------------------------
  355. 3550 *FRG
  356. 3560 ATFRG(P)=0:PTSTEMP&(P)=0
  357. 3570 FOR W=0 TO 15:PONFRG(P,W)=0:MKFRG(P,W\3)=0 :NEXT
  358. 3580 ON (FUDA(P)<2)*-1  GOTO 3650
  359. 3590  FOR V=2 TO FUDA(P)
  360. 3600   FOR W=2 TO FUDA(P)
  361. 3610  ON (DAT(P,W-1,1)>DAT(P,W,1))+1 GOTO 3640
  362. 3620    SWAP DAT(P,W-1,1),DAT(P,W,1)
  363. 3630    SWAP DAT(P,W-1,0),DAT(P,W,0)
  364. 3640  NEXT W,V
  365. 3650 FOR W=1 TO FUDA(P):ATFRG(P)=ATFRG(P)-DAT(P,W,1)*(DAT(P,W,0)<>5)
  366. 3660  PONFRG(P,DAT(P,W,1))=PONFRG(P,DAT(P,W,1))+1
  367. 3670  MKFRG(P,DAT(P,W,0))=MKFRG(P,DAT(P,W,0))-(DAT(P,W,0)<>5)
  368. 3680 NEXT
  369. 3690 FOR W=1 TO 4:M(P,W)=W:T(W)=MKFRG(P,W) :NEXT
  370. 3700 FOR U=2 TO 4
  371. 3710  ON (T(U)>T(U-1))+1 GOTO 3730
  372. 3720  SWAP M(P,U),M(P,U-1) 
  373. 3730 NEXT
  374. 3740 PTSTEMP&(P)=ATFRG(P)*(2^PONFRG(P,2))*(4^PONFRG(P,14))
  375. 3750 LINE (640,15)-(1023,105),PSET,%40,BF
  376. 3760 ON (FUDA(P)=0)+1 GOTO 3780
  377. 3770 AGA=Z : RETURN
  378. 3780 FOR K=1 TO FUDA(P):GOSUB *PRINTING:NEXT
  379. 3790 ON (TUBFRG(P)<>0)*-1 GOTO 3890
  380. 3800 ON IL GOTO 3860
  381. 3810 SNN=0:FOR TY=1 TO 4:SNN=SNN+(ATFRG(TY)<14)*(TUBFRG(TY)=0):NEXT
  382. 3820 OUTM #255,&HCB,30-(SNN<>0)
  383. 3830 OUTM #255,&H9C,60,0:OUTM #255,&HBC,&H0A,&H40:OUTM #255,&HBC,&H07,&H7F
  384. 3840 OUTM #255,&HCC,&H03     :OUTM #255,&H9C,60,80 
  385. 3850 'GOSUB *RESTPRIN
  386. 3860 GOSUB *RESTPRIN
  387. 3870 ON (FUDA(P)=-1*(P<>4))*-1 GOSUB *RECHI
  388. 3880 ON (ATFRG(P)<-14*(P<>4))*-1 GOSUB *ATARIARI
  389. 3890 GET@A (640,15)-(1023,105),TEMPTIF
  390. 3900 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  391. 3910 S!=(H<>1)*-1:GOSUB *WAIT :RETURN
  392. 3920    '-----------------------------------------------------------------
  393. 3930 *ATARIARI
  394. 3940 PUT@ (660,30)-(957,90),ATARIARI,PSET,%62:OUTM #255,&HCB,31 
  395. 3950 RETURN 3890
  396. 3960    '-----------------------------------------------------------------
  397. 3970 *RECHI
  398. 3980 PUT@ (660,30)-(847,91),RECHI,PSET,%61:OUTM #255,&HCB,31 
  399. 3990 RETURN 3890
  400. 4000 '--------------------------------------------------------------------
  401. 4010 *RESTPRIN
  402. 4020 LINE (695,113)-(730,144),PSET,%40,BF
  403. 4030 V=REST\10:W=0
  404. 4040 ON V GOSUB 4130,4140,4150,4160,4170,4180,4190,4200,4210
  405. 4050 V=REST MOD 10:W=1
  406. 4060 ON V+1 GOSUB 4120,4130,4140,4150,4160,4170,4180,4190,4200,4210
  407. 4070 ON (REST<>0)*-1 GOTO 4090
  408. 4080 LINE (50,150)-(140,244),PSET,%40,BF
  409. 4090 GET@A (695,113)-(730,144),TEMPTIF
  410. 4100 PUT@A (95,113)-(130,144),TEMPTIF
  411. 4110 RETURN
  412. 4120 PUT@ (695+W*18,113)-(710+W*18,144),CN0,PSET,%60:RETURN
  413. 4130 PUT@ (695+W*18,113)-(710+W*18,144),CN1,PSET,%60:RETURN
  414. 4140 PUT@ (695+W*18,113)-(710+W*18,144),CN2,PSET,%60:RETURN
  415. 4150 PUT@ (695+W*18,113)-(710+W*18,144),CN3,PSET,%60:RETURN
  416. 4160 PUT@ (695+W*18,113)-(710+W*18,144),CN4,PSET,%60:RETURN
  417. 4170 PUT@ (695+W*18,113)-(710+W*18,144),CN5,PSET,%60:RETURN
  418. 4180 PUT@ (695+W*18,113)-(710+W*18,144),CN6,PSET,%60:RETURN
  419. 4190 PUT@ (695+W*18,113)-(710+W*18,144),CN7,PSET,%60:RETURN
  420. 4200 PUT@ (695+W*18,113)-(710+W*18,144),CN8,PSET,%60:RETURN
  421. 4210 PUT@ (695+W*18,113)-(710+W*18,144),CN9,PSET,%60:RETURN
  422. 4220 '--------------------------------------------------------------------
  423. 4230 *CHOICE:Z=Z-(Z=0)*4
  424. 4240 C=0:QS=0 :ON (TUBFRG(Z)<>0)*-1 GOTO 4970
  425. 4250 ON (HIKI(0)=Z)+1 GOTO 4280
  426. 4260  ERASE HIKI:DIM HIKI(1):D=1
  427. 4270 ON (DAI(1)=5)*(FUDA(Z)=1) GOTO *DRAW
  428. 4280 ON (HIKI(0)<>0)+1 GOTO 4330
  429. 4290  ON (REST=0)*-1 GOTO 4970
  430. 4300  ON (HIKI(1)=0)*-1 GOTO 4970
  431. 4310  FOR U=1 TO HIKI(1):P=Z:K=FUDA(Z)+1:H=1:GOSUB *CARD :NEXT
  432. 4320  TUBFRG(Z)=0:G=1:GOSUB *FRG:RETURN
  433. 4330 LINE (241,0)-(244,480),PSET,%40,BF:G=0 
  434. 4340 LINE (241,FNA(Z)+30)-(244,FNA(Z)+90),PSET,%61,BF
  435. 4350 V=0:F=0:H=0:FOR W=1 TO 4:V=V+TUBFRG(W):NEXT
  436. 4360 ON (V=3)+1 GOTO 4380
  437. 4370  NOKO=Z:RETURN
  438. 4380 S!=-2*(Z<>4):GOSUB *WAIT
  439. 4390 W=0:V=0:FOR P=1 TO 4:W=W+(ATFRG(P)<14)*(P<>Z) :NEXT
  440. 4400 ON (FUDA(Z)=1)*-1 GOTO 4550
  441. 4410 ON (FUDA(Z)=3)+1 GOTO 4440
  442. 4420   ON (DAT(Z,3,1)=14)+1 GOTO 4440
  443. 4430   C(0)=3 : GOTO 4850
  444. 4440 ON (Z=4)*-1 GOTO 4490
  445. 4450 ON (W<>0)*-1 GOTO 4500
  446. 4460 ON (B=1)*-1 GOTO 4540
  447. 4470 ON INT(RND(1)*3+1) GOTO 4510,4520,4530
  448. 4480  C(0)=(DAT(Z,FUDA(Z),1)=14)*FUDA(Z)*-1:ON (C(0)>0)*-1 GOTO 4780
  449. 4490  RESTORE 4770:GOTO 4560
  450. 4500  RESTORE 4710:GOTO 4560
  451. 4510  RESTORE 4720:GOTO 4560
  452. 4520  RESTORE 4730:GOTO 4560
  453. 4530  RESTORE 4740:GOTO 4560
  454. 4540  RESTORE 4750:GOTO 4560
  455. 4550  RESTORE 4760:GOTO 4560
  456. 4560 WHILE V=0:READ W$
  457. 4570  ON (W$="*")*-1 GOTO 4660
  458. 4580  ON (W$="**")+1 GOTO 4600
  459. 4590    C(0)=0 :V=1: GOTO 4700
  460. 4600 FOR K=1 TO FUDA(Z)
  461. 4610  ON ((V=0)*(DAI(1)=5)*(VAL(W$)=DAT(Z,K,1))<>0)*-1 GOTO 4630
  462. 4620  ON ((V=0)*(DAI(1)=DAT(Z,K,0))*(VAL(W$)=DAT(Z,K,1))<>0)+1 GOTO 4640
  463. 4630   C(0)=K:V=1
  464. 4640 NEXT
  465. 4650 GOTO 4700
  466. 4660  FOR W=1 TO 4:FOR K=1 TO FUDA(Z)
  467. 4670  ON ((M(Z,W)=DAT(Z,K,0))*(DAI(2)=DAT(Z,K,1))*(FUDA(Z)<>1)<>0)+1 GOTO 4690
  468. 4680   C(0)=K:V=1
  469. 4690  NEXT K,W
  470. 4700 WEND:B=0 
  471. 4710 DATA 2,8,*,1,3,4,11,5,6,7,9,10,12,13,**,**
  472. 4720 DATA 13,12,10,9,2,7,6,5,4,3,8,1,*,**,**
  473. 4730 DATA *,13,12,10,9,8,7,6,5,4,3,2,1,**,**
  474. 4740 DATA 8,13,12,10,*,9,2,7,6,5,4,3,1,**,**
  475. 4750 DATA 8,2,*,13,12,10,9,7,6,5,4,3,1,**,**
  476. 4760 DATA 13,12,10,*,9,7,6,5,4,3,1,**,**
  477. 4770 DATA 13,12,11,10,9,8,7,6,5,4,3,2,1,*,**,**
  478. 4780 ON (SGN(C(0))+1)*(Z<>4)*-1 GOTO 4790,4870
  479. 4790 FOR K=FUDA(Z) TO 1 STEP -1
  480. 4800 ON ((11=DAT(Z,K,1))*(FUDA(Z)<>1)<>0)*-1 GOTO 4830
  481. 4810 ON (FUDA(Z)<=2)*(REST<>0) GOTO 4840
  482. 4820 ON ((5=DAT(Z,K,0))*(FUDA(Z)<>1)<>0)+1 GOTO 4840
  483. 4830   C(0)=K
  484. 4840 NEXT
  485. 4850 ON (Z=4)*-1 GOTO *P4CK1
  486. 4860 ON SGN(C(0))+1 GOTO *DRAW
  487. 4870 DAI(0)=Z:DAI(1)=DAT(Z,C(0),0):DAI(2)=DAT(Z,C(0),1)
  488. 4880 SWAP DAT(Z,C(0),0),DAT(Z,FUDA(Z),0):DAT(Z,FUDA(Z),0)=0
  489. 4890 SWAP DAT(Z,C(0),1),DAT(Z,FUDA(Z),1):DAT(Z,FUDA(Z),1)=0
  490. 4900 P=Z:FUDA(Z)=FUDA(Z)-1:GOSUB *FRG
  491. 4910 X=40+RND(2)*30:Y=245+RND(2)*20:M=DAI(1):N=DAI(2):Q=0
  492. 4920 ON (N<>11)*-1 GOTO 4940
  493. 4930 X=50:Y=250
  494. 4940 CTR=1:GOSUB *PRIN_4:CTR=0
  495. 4950 ON (FUDA(Z)=0)*-1 GOTO 4960
  496. 4960 S!=(FUDA(Z)<>0)*(DA<>3)*-2*(B<>1):GOSUB *WAIT
  497. 4970 RETURN 
  498. 4980 '--------------------------------------------------------------------
  499. 4990 *DRAW
  500. 5000 K=FUDA(Z)+1:P=Z:GOSUB  *CARD:C=(TUBFRG(Z)=1)*-1
  501. 5010 GOSUB *FRG 
  502. 5020 ON ((TUBFRG(Z)=1)*(H=0)<>0)*-1 GOSUB *TUBURE
  503. 5030 F=1:DAI(0)=0: RETURN
  504. 5040 '--------------------------------------------------------------------
  505. 5050 *TUBURE 
  506. 5060 PUT@ (270,30+FNA(Z))-(458,91+FNA(Z)),TUBURE,PSET,%60
  507. 5070 OUTM #255,&H9D,60,0:OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F
  508. 5080 SNN=0:FOR TY=1 TO 4:SNN=SNN+(ATFRG(TY)<14)*(TUBFRG(TY)=0):NEXT
  509. 5090 OUTM #255,&HCB,30-(SNN<>0) 
  510. 5100 OUTM #255,&HCD,&H02     :OUTM #255,&H9D,40,90
  511. 5110 P=Z:X=440:GOSUB *PTSPRIN:RETURN 
  512. 5120 '--------------------------------------------------------------------
  513. 5130 *PTSPRIN
  514. 5140 FOR W=1 TO FNB&(FNC&(PTSTEMP&(P)))
  515. 5150 V=VAL(MID$(STR$(FNC&(PTSTEMP&(P))),W+1,1))
  516. 5160 ON V+1 GOSUB 5190,5200,5210,5220,5230,5240,5250,5260,5270,5280
  517. 5170 NEXT
  518. 5180 RETURN
  519. 5190 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN0,PSET,%60:RETURN
  520. 5200 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN1,PSET,%60:RETURN
  521. 5210 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN2,PSET,%60:RETURN
  522. 5220 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN3,PSET,%60:RETURN
  523. 5230 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN4,PSET,%60:RETURN
  524. 5240 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN5,PSET,%60:RETURN
  525. 5250 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN6,PSET,%60:RETURN
  526. 5260 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN7,PSET,%60:RETURN
  527. 5270 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN8,PSET,%60:RETURN
  528. 5280 PUT@ (X+W*25,FNA(P)+35)-(X+23+W*25,FNA(P)+82),PN9,PSET,%60:RETURN
  529. 5290 '--------------------------------------------------------------------
  530. 5300 *HANTEI
  531. 5310 SNN=0:FOR TY=1 TO 4:SNN=SNN+(ATFRG(TY)<14)*(TUBFRG(TY)=0):NEXT
  532. 5320 OUTM #255,&HCB,30-(SNN<>0) 
  533. 5330 ON (AGA<>0)*-1 GOTO *AGARI
  534. 5340 ON (NOKO<>0)*-1 GOTO *KATHINOKORI
  535. 5350 J=0:L=0 
  536. 5360 FOR W=3 TO 1+(AI=2) STEP -1:P=Z+W:P=((P>4)*(P-4)+(P<5)*P)*-1
  537. 5370 ON (DAI(1)=5)*(DAT(P,1,0)=5)*(TUBFRG(P)=0)*-1 GOTO 5390
  538. 5380 ON ((DAI(1)<>5)*(DAI(2)=ATFRG(P))*(TUBFRG(P)=0)*((P<>Z)+(AI=2))<>0)+1 GOTO 5400
  539. 5390  J=P:L=1
  540. 5400 TR=0:FOR TY=1 TO PONFRG(P,DAI(2)):TR=TR-(DAT(P,TY,1)=DAI(2)):NEXT
  541. 5410 TY=((TR<>FUDA(P))*(DAT(P,PONFRG(P,DAI(2))+1,0)=5)-(TR=FUDA(P)))*TR
  542. 5420 ON ((TY=PONFRG(P,DAI(2)))*(PONFRG(P,DAI(2))>1)*(TUBFRG(P)=0)*((P<>Z)+(AI=2))<>0)+1  GOTO 5440
  543. 5430  J=P:L=PONFRG(P,DAI(2))
  544. 5440 NEXT
  545. 5450 ON AI*(J<>0)*-1 GOTO *ATARI,*IPPATHU
  546. 5460 FOR P=1 TO 3
  547. 5470 ON ((DAI(2)<>11)*(PONFRG(P,DAI(2))>=2)*(TUBFRG(P)=0)<>0)+1 GOTO 5490 
  548. 5480   J=P
  549. 5490 NEXT
  550. 5500 ON (J<>0)*(F=0) GOTO *PON
  551. 5510 ON ((PONFRG(4,DAI(2))>=2)*(TUBFRG(4)=0)<>0)+1 GOTO 5530 
  552. 5520   J=4
  553. 5530 ON (J=4)*(F=0) GOTO *PON
  554. 5540 ON (((DAI(2)=2)+(DAI(2)=8)+(DAI(1)=5)<>0)*(HIKI(0)=0)*(F=0)<>0)+1  GOTO 5570 
  555. 5550  HIKI(0)=Z:B=1
  556. 5560  HIKI(1)=D*((DAI(1)=5)*USER(1)*-1*(USER(1)<>0)-(DAI(2)=2)*2-(DAI(2)=8))
  557. 5570 ON ((DAI(2)=11)*(Q=0)<>0)*-1 GOTO *CHENGE
  558. 5580 D=1:GOTO 2750
  559. 5590 '--------------------------------------------------------------------
  560. 5600 *AGARI
  561. 5610 P=Z:LINE (250,15+FNA(P))-(640,105+FNA(P)),PSET,%40,BF
  562. 5620 OUTM #255,&H9D,60,0:OUTM #255,&HCB,30 
  563. 5630 PUT@ (270,30+FNA(Z))-(443,92+FNA(Z)),AGARI,PSET,%64
  564. 5640 OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F
  565. 5650 OUTM #255,&HCD,&H01:OUTM #255,&H9D,30,127
  566. 5660 S!=1.8!:GOSUB *WAIT
  567. 5670 FOR P=1 TO 4
  568. 5680 ON (P=Z)*-1 GOTO 5760
  569. 5690 ON (TUBFRG(P)=0)+1 GOTO 5750
  570. 5700 LINE (640,15)-(1023,105),PSET,%40,BF:E=1
  571. 5710 FOR K=1 TO FUDA(P):C=1:GOSUB *PRINTING :NEXT
  572. 5720 GET@A (640,15)-(1023,105),TEMPTIF
  573. 5730 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  574. 5740 X=270:GOSUB *PTSPRIN
  575. 5750 PTS&(Z)=PTS&(Z)+FNC&(PTSTEMP&(P)*AI):PTS&(P)=PTS&(P)-FNC&(PTSTEMP&(P)*AI)
  576. 5760 NEXT
  577. 5770 S!=20:GOSUB *WAIT
  578. 5780 AGA=Z:GOTO *SETUP2
  579. 5790 '--------------------------------------------------------------------
  580. 5800 *ATARI:QS=1
  581. 5810  ON (DAI(0)=0)*-1 GOTO 5460
  582. 5820  ON (J=DAI(0))*-1 GOTO 5460
  583. 5830  ON (J=4)*-1 GOTO *P4CK3
  584. 5840 P=J:GAE=0:GAE_L=0:UI=0:BR=1:LINE (640,15)-(1023,105),PSET,%40,BF
  585. 5850 FOR K=1 TO FUDA(P):E=1:C=1:GOSUB *PRINTING :NEXT
  586. 5860 GET@A (640,15)-(1023,105),TEMPTIF
  587. 5870 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  588. 5880 OUTM #255,&H9D,60,0:OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F
  589. 5890 OUTM #255,&HCB,30 :OUTM #255,&HCD,&H02:OUTM #255,&H9D,64,127
  590. 5900 ON L GOTO 5910,5920,5930
  591. 5910  PUT@ (270,30+FNA(P))-(443,89+FNA(P)),ATARI,PSET,%64 :GOTO 5940
  592. 5920  PUT@ (270,30+FNA(P))-(450,90+FNA(P)),DUBLE,PSET,%65 :GOTO 5940
  593. 5930  PUT@ (260,30+FNA(P))-(510,92+FNA(P)),TRIPLE,PSET,%65 :UI=1:GOTO 5940
  594. 5940 P=DAI(0):LINE (640,15)-(1023,105),PSET,%40,BF
  595. 5950 FOR K=1 TO FUDA(P):E=1:C=1:GOSUB *PRINTING :NEXT
  596. 5960 GET@A (640,15)-(1023,105),TEMPTIF
  597. 5970 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  598. 5980  '-----------------
  599. 5990  ON (DAI(1)=5)*(DAT(P,1,0)=5)*(TUBFRG(P)=0)*-1 GOTO 6010
  600. 6000  ON ((DAI(1)<>5)*(DAI(2)=ATFRG(P))*(TUBFRG(P)=0)<>0)+1 GOTO 6020
  601. 6010   GAE=1 : GAE_L=1
  602. 6020  TR=0:FOR TY=1 TO PONFRG(P,DAI(2)):TR=TR-(DAT(P,TY,1)=DAI(2)):NEXT
  603. 6030  TY=((TR<>FUDA(P))*(DAT(P,PONFRG(P,DAI(2))+1,0)=5)-(TR=FUDA(P)))*TR
  604. 6040  ON ((TY=PONFRG(P,DAI(2)))*(PONFRG(P,DAI(2))>1)*(TUBFRG(P)=0)<>0)+1 GOTO 6060
  605. 6050   GAE=1 : GAE_L=PONFRG(P,DAI(2))
  606. 6060  ON (GAE=1)*-1 GOTO 6090
  607. 6070 PUT@ (260,30+FNA(P))-(503,91+FNA(P)),FURIKOMI,PSET,%60 
  608. 6080 GOTO 6180
  609. 6090    S!=4 : GOSUB *WAIT
  610. 6100    PUT@ (270,30+FNA(P))-(401,94+FNA(P)),GAESHI,PSET,%65 
  611. 6110    SWAP P,J
  612. 6120    LINE (640,15)-(1023,105),PSET,%40,BF
  613. 6130    FOR K=1 TO FUDA(P):E=1:C=1:GOSUB *PRINTING :NEXT
  614. 6140    GET@A (640,15)-(1023,105),TEMPTIF
  615. 6150    PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  616. 6160    OUTM #255,&H9D,60,0: OUTM #255,&HCD,&H02:OUTM #255,&H9D,60,127
  617. 6170    X=270     : PTSTEMP&(P)=PTSTEMP&(P)*(2^L)*(2^GAE_L) : GOTO 6190
  618. 6180 X=490        : PTSTEMP&(P)=PTSTEMP&(P)*(2^L)
  619. 6190 GOSUB *PTSPRIN
  620. 6200 S!=20:GOSUB *WAIT:AGA=J
  621. 6210 PTS&(P)=PTS&(P)-FNC&(PTSTEMP&(P)):PTS&(J)=PTS&(J)+FNC&(PTSTEMP&(P))
  622. 6220 GOTO *SETUP2
  623. 6230 '--------------------------------------------------------------------
  624. 6240 *SETWAIT 
  625. 6250 SS&=0 : SSS&=0 
  626. 6260 ON (KPL=0)*-1 GOTO 6280
  627. 6270 MOUSE(4) OFF
  628. 6280 SS&=0 : SSS&=0 
  629. 6290 INTERVAL 2
  630. 6300 ON INTERVAL GOSUB *COUNT
  631. 6310 INTERVAL ON : ON ERROR GOTO 10660
  632. 6320 WHILE SSS&=0
  633. 6330 SS&=SS&+1
  634. 6340 WEND 
  635. 6350 INTERVAL OFF
  636. 6360 ON (KPL=0)*-1 GOTO 6380
  637. 6370 MOUSE(4) ON
  638. 6380 INTERVAL OFF: RETURN
  639. 6390   *COUNT
  640. 6400   SSS&=1 
  641. 6410   RETURN
  642. 6420 '--------------------------------------------------------------------
  643. 6430 *WAIT 
  644. 6440 SSS&=(S!*SS&/200)*USER(4)
  645. 6450 WHILE S&<SSS&
  646. 6460 S&=S&+1
  647. 6470 WEND:S&=0 
  648. 6480 RETURN
  649. 6490 '--------------------------------------------------------------------
  650. 6500 *KATHINOKORI
  651. 6510 P=Z:LINE (640,15)-(1023,105),PSET,%40,BF
  652. 6520 FOR K=1 TO FUDA(Z):E=1:C=1:GOSUB *PRINTING :NEXT
  653. 6530 GET@A (640,15)-(1023,105),TEMPTIF
  654. 6540 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  655. 6550 PUT@ (270,30+FNA(Z))-(504,94+FNA(Z)),KATHI,PSET,%64
  656. 6560 OUTM #255,&HCB,30 
  657. 6570 GOTO 5670
  658. 6580 '--------------------------------------------------------------------
  659. 6590 *PON
  660. 6600 ON (J=DAI(0))*-1 GOTO 5540
  661. 6610 ON (PONFRG(J,DAI(2))<2)*-1 GOTO 5540
  662. 6620 ON (FUDA(J)<1)*-1 GOTO 5540
  663. 6630 ON (J=4)*-1 GOTO *P4CK2
  664. 6640 Z=J:P=J:W=1
  665. 6650  LINE (640,15)-(1023,105),PSET,%40,BF
  666. 6660  FOR K=1 TO FUDA(Z):GOSUB *PRINTING:NEXT
  667. 6670 GET@A (640,15)-(1023,105),TEMPTIF
  668. 6680 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  669. 6690   LINE (241,0)-(244,480),PSET,%40,BF:G=0 
  670. 6700   LINE (241,FNA(Z)+30)-(244,FNA(Z)+90),PSET,%61,BF
  671. 6710 OUTM #255,&H9D,60,0:OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F
  672. 6720  ON PONFRG(Z,DAI(2))-1 GOTO 6730,6750
  673. 6730      PUT@ (270,30+FNA(Z))-(391,93+FNA(Z)),PON,PSET,%64
  674. 6740      OUTM #255,&HCD,&H00:OUTM #255,&H9D,60,127  : GOTO 6770
  675. 6750      PUT@ (270,30+FNA(Z))-(393,90+FNA(Z)),KAN,PSET,%64
  676. 6760      OUTM #255,&HCD,&H01:OUTM #255,&H9D,58,127
  677. 6770 S!=4:GOSUB *WAIT
  678. 6780 DAI(0)=Z
  679. 6790  FOR K=1 TO FUDA(P) 
  680. 6800  ON (DAT(P,K,1)<>DAI(2))+2 GOTO 6810,6820
  681. 6810    DAT(5,W,1)=DAT(P,K,1):DAT(5,W,0)=DAT(P,K,0):W=W+1:GOTO 6890
  682. 6820    DAI(1)=DAT(P,K,0)
  683. 6830    X=50+RND(2)*15:Y=250+RND(2)*15:M=DAI(1):N=DAI(2)
  684. 6840    ON (N<>11)*-1 GOTO 6860
  685. 6850    X=50:Y=250
  686. 6860    CTR=1:GOSUB *PRIN_4:CTR=0
  687. 6870 OUTM #255,&H9C,60,0:OUTM #255,&HBC,&H0A,&H40:OUTM #255,&HBC,&H07,&H7F
  688. 6880 OUTM #255,&HCC,&H03     :OUTM #255,&H9C,60,80:S!=1:GOSUB *WAIT
  689. 6890  NEXT
  690. 6900 FUDA(P)=FUDA(P)-PONFRG(P,DAI(2))
  691. 6910 FOR K=1 TO FUDA(P):DAT(P,K,1)=DAT(5,K,1):DAT(P,K,0)=DAT(5,K,0):NEXT
  692. 6920 ON ((DAI(2)=2)+(DAI(2)=8)+(DAI(1)=5)=0)*-1 GOTO 6940
  693. 6930 D=PONFRG(P,DAI(2))+1
  694. 6940 IL=1:GOSUB *FRG:S!=2:GOSUB *WAIT:AI=1:IL=0
  695. 6950 GOTO *HANTEI
  696. 6960 '--------------------------------------------------------------------
  697. 6970 *CHENGE
  698. 6980 ON (AI=2)*-1 GOTO 2750
  699. 6990 Q=1:ON (Z=4)*-1 GOTO *P4CK4
  700. 7000 S!=1:GOSUB *WAIT
  701. 7010 W=((INT(RND(1)*4)+1)*(FUDA(Z)=1)+DAT(Z,INT(RND(1)*FUDA(Z))+1,0)*(FUDA(Z)<>1))*-1
  702. 7020 ON (1=<W)*(W<=4) GOTO 7040
  703. 7030 GOTO 7010
  704. 7040 DAI(1)=W
  705. 7050 LINE (50+4,250+4)-(50+60-4,250+90-4),PSET,%DAI(1)+90,BF
  706. 7060 S!=2:GOSUB *WAIT:GOTO 2750
  707. 7070 '--------------------------------------------------------------------
  708. 7080 *P4CK1
  709. 7090 LDH=0
  710. 7100 ON (FUDA(4)=2)*(REST<>0)*(DAT(4,2,0)=5)+1 GOTO 7120
  711. 7110 LDH=1
  712. 7120 ON (SGN(C(0))<>0)*-1 GOTO 7140
  713. 7130 C(0)=((DAT(4,1,1)=DAI(2))+(DAT(4,1,0)=DAI(1))<>0)*(DAT(4,1,1)<>2)*(DAT(4,1,1)<>11)*(DAT(4,1,0)<>5)*(DAT(4,1,1)<>8)
  714. 7140 ON (SGN(C(0))<>0)*-1 GOTO 7160
  715. 7150 S!=1-(REST<>0)*1:GOSUB *WAIT:GOTO *DRAW
  716. 7160 DA=1
  717. 7170 C(0)=0:CA=0:CC=0:EA=1:CL=1
  718. 7180 ON (REST=0)+2 GOTO 7190,7210
  719. 7190 LINE (509,345)-(620,360),PSET,%41,BF
  720. 7200 PUT@ (533,345)-(596,360),MAS6,PSET,%19:GOTO 7230
  721. 7210 LINE (509,345)-(620,360),PSET,%41,BF
  722. 7220 PUT@ (509,345)-(620,360),MAS5,PSET,%19
  723. 7230 MOUSE(3) ON
  724. 7240 ON ERROR GOTO 10660
  725. 7250 ON (CA=-1)*-1 GOTO 7350
  726. 7260 CAT=CA
  727. 7270 CK=(DAI(1)<>DAT(4,CAT,0))*(DAI(2)<>DAT(4,CAT,1))*(DAT(4,CAT,1)<>11)*(DAT(4,CAT,0)<>5)*(DAI(1)<>5)
  728. 7280 ON (FUDA(4)=1)+1 GOTO 7300
  729. 7290 CL=((DAT(4,CAT,1)<>2)*(DAT(4,CAT,1)<>8)*(DAT(4,CAT,0)<>5)*(DAT(4,CAT,1)<>11)<>0)*-1
  730. 7300 ON (CK<>0)*-1 GOTO 7230
  731. 7310 ON (CL=0)*-1 GOTO 7230
  732. 7320 ON (CAT=0)*-1 GOTO 7230
  733. 7330 ON (LDH=1)*(DAT(4,CA,0)=5) GOTO 7230
  734. 7340 C(0)=CA
  735. 7350 DA=0 : MOUSE(3) OFF
  736. 7360 LINE (509,345)-(620,360),PSET,%40,BF
  737. 7370 GOTO 4860
  738. 7380 '--------------------------------------------------------------------
  739. 7390 *CARDGET:STOP OFF
  740. 7400 ON (FUDA(4)=0)*-1 GOTO 7460
  741. 7410  CA=FNE(MOUSE(4,0),FUDA(4))*(MOUSE(4,0)<FND(FUDA(4),FUDA(4))+310)*-1
  742. 7420  CB=FNE(MOUSE(7,0),FUDA(4))*(MOUSE(7,0)<FND(FUDA(4),FUDA(4))+310)*-1
  743. 7430  CA=(CA*(CA<=FUDA(4))+FUDA(4)*(FUDA(4)<CA))*(MOUSE(5,0)>=FNA(4)+15)
  744. 7440  CB=(CB*(CB<=FUDA(4))+FUDA(4)*(FUDA(4)<CB))*(MOUSE(8,0)>=FNA(4)+15)
  745. 7450  CA=(CA=CB)*CA*-1
  746. 7460 ON EA GOTO 7480,7560,7480,7610,7660
  747. 7470     '----------------------------------------------------------------
  748. 7480  CC=FNF(MOUSE(4,0))*FNG(MOUSE(5,0))
  749. 7490  CE=FNF(MOUSE(7,0))*FNG(MOUSE(8,0))
  750. 7500  CC=(CC=CE)*CC*-1
  751. 7510  CA=CA*(CC=0)*-1+(CC<>0)
  752. 7520  ON (EA=3)*-1 GOTO 7540
  753. 7530  RETURN 7230 
  754. 7540  RETURN 
  755. 7550     '----------------------------------------------------------------
  756. 7560  CC=FNH(MOUSE(4,0))*FNG(MOUSE(5,0))
  757. 7570  CE=FNH(MOUSE(7,0))*FNG(MOUSE(8,0))
  758. 7580  CC=(CC=CE)*CC*-1
  759. 7590  RETURN 
  760. 7600     '----------------------------------------------------------------
  761. 7610  CC=FNI(MOUSE(4,0))*FNG(MOUSE(5,0))
  762. 7620  CE=FNI(MOUSE(7,0))*FNG(MOUSE(8,0))
  763. 7630  CC=(CC=CE)*CC*-1
  764. 7640  RETURN 
  765. 7650     '----------------------------------------------------------------
  766. 7660  CC=FNJ(MOUSE(4,0))*FNG(MOUSE(5,0))
  767. 7670  CE=FNJ(MOUSE(7,0))*FNG(MOUSE(8,0))
  768. 7680  CC=(CC=CE)*CC*-1
  769. 7690  RETURN 
  770. 7700 '--------------------------------------------------------------------
  771. 7710 *P4CK2:ON (PONFRG(4,DAI(2))<=1)*-1 GOTO 5540
  772. 7720 DA=2:FW=Z:MOUSE(3) ON:C(0)=0 :CA=0:CC=0:EA=2:XTM=X:YTM=Y
  773. 7730 ON ERROR GOTO 10660
  774. 7740 PUT@ (241,345)-(340,362),MAS7,PSET,%19
  775. 7750 LINE (541,345)-(620,360),PSET,%41,BF
  776. 7760 PUT@ (541,345)-(620,360),MAS4,PSET,%19
  777. 7770 ON (PONFRG(4,DAI(2))=2)*-1 GOTO 7820
  778. 7780 LINE (351,345)-(435,360),PSET,%41,BF
  779. 7790 PUT@ (351,345)-(435,360),MAS2,PSET,%19
  780. 7800 LINE (446,345)-(530,360),PSET,%41,BF
  781. 7810 PUT@ (446,345)-(530,360),MAS3,PSET,%19:GOTO 7850
  782. 7820 LINE (446,345)-(530,360),PSET,%41,BF
  783. 7830 PUT@ (446,345)-(530,360),MAS2,PSET,%19
  784. 7840     '----------------------------------------------------------------
  785. 7850 ON (CC=0)*-1 GOTO 7850
  786. 7860 MOUSE(3) OFF:DA=0
  787. 7870 ON CC GOTO 7880,7900,7910
  788. 7880 ON (PONFRG(4,DAI(2))=3)+1 GOTO 7850
  789. 7890 EB=2:GOTO 7940
  790. 7900 EB=((PONFRG(4,DAI(2))=3)*3+(PONFRG(4,DAI(2))=2)*2)*-1:GOTO 7940
  791. 7910 LINE (241,345)-(620,362),PSET,%40,BF
  792. 7920 X=XTM:Y=YTM:GOTO 5540
  793. 7930     '----------------------------------------------------------------
  794. 7940 LINE (241,345)-(620,362),PSET,%40,BF:EA=3 :EC=EB:MOUSE(4) OFF
  795. 7950 ON (EB=FUDA(4))+1 GOTO 7970
  796. 7960 MOUSE(4) ON :ON ERROR GOTO 10660 :GOTO 5840
  797. 7970 OUTM #255,&H9D,60,0
  798. 7980 OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F 
  799. 7990 ON EB-1 GOTO 8000,8020
  800. 8000 PUT@ (241,345)-(492,364),MAS8,PSET,%19
  801. 8010 OUTM #255,&HCD,&H00:OUTM #255,&H9D,60,127:GOTO 8040
  802. 8020 PUT@ (241,345)-(493,366),MAS9,PSET,%19
  803. 8030 OUTM #255,&HCD,&H01:OUTM #255,&H9D,60,127
  804. 8040 LINE (241,0)-(244,480),PSET,%40,BF
  805. 8050 LINE (241,FNA(4)+30)-(244,FNA(4)+90),PSET,%61,BF
  806. 8060 LINE (541,345)-(623,360),PSET,%41,BF
  807. 8070 PUT@ (541,345)-(623,360),KYAN,PSET,%19
  808. 8080 GET@A (30,250)-(130,360),TEMPTIF2
  809. 8090 DAITMP=DAI(1)
  810. 8100 DA=3:FQ=FUDA(4)
  811. 8110 FOR FR=1 TO FUDA(4)
  812. 8120 DAT(5,FR,0)=DAT(4,FR,0):DAT(5,FR,1)=DAT(4,FR,1)
  813. 8130 NEXT
  814. 8140 WHILE EC>0
  815. 8150 MOUSE(3) ON 
  816. 8160 ON ERROR GOTO 10660
  817. 8170 ON (CA=0)*-1 GOTO 8170
  818. 8180 MOUSE(3) OFF
  819. 8190 ON (CA<>-1)*-1 GOTO 8210 
  820. 8200 EC=0:GOTO 8250
  821. 8210 CK=(DAI(2)=DAT(4,CA,1))
  822. 8220 ON (CK=0)*-1 GOTO 8150
  823. 8230 C(0)=CA:CK=0:CA=0
  824. 8240 Z=4:MOUSE(3) OFF:GOSUB 4870:MOUSE(3) ON:EC=EC-1
  825. 8250 ON ERROR GOTO 10660 : WEND
  826. 8260 ON (CA=-1)*-1 GOTO 8340
  827. 8270 LINE (241,345)-(640,366),PSET,%40,BF:MOUSE(3) OFF
  828. 8280 G=0 
  829. 8290 ON ((DAI(2)=2)+(DAI(2)=8)+(DAI(1)=5)=0)*-1 GOTO 8310
  830. 8300   D=EB+1 
  831. 8310 S!=-1*(D=1):GOSUB *WAIT:AI=1:DA=0:MOUSE(4) ON : ON ERROR GOTO 10660
  832. 8320 GOTO *HANTEI
  833. 8330    '-----------------------------------------------------------------
  834. 8340 FOR FR=1 TO FQ
  835. 8350 DAT(4,FR,0)=DAT(5,FR,0):DAT(4,FR,1)=DAT(5,FR,1)
  836. 8360 NEXT
  837. 8370 Z=FW:FUDA(4)=FQ
  838. 8380 LINE (241,345)-(640,368),PSET,%40,BF:MOUSE(4) ON
  839. 8390 LINE (241,0)-(244,480),PSET,%40,BF
  840. 8400 LINE (241,FNA(Z)+30)-(244,FNA(Z)+90),PSET,%61,BF
  841. 8410 PUT@A (30,250)-(130,360),TEMPTIF2
  842. 8420 DAI(1)=DAITMP
  843. 8430 IL=1:GOSUB *FRG:IL=0:X=XTM:Y=YTM:GOTO *P4CK2
  844. 8440 '--------------------------------------------------------------------
  845. 8450 *P4CK3 
  846. 8460 ON (QS=0)*-1 GOTO 5460
  847. 8470 MOUSE(3) ON:ON ERROR GOTO 10660:C(0)=0:CA=0:CC=0:EA=5:DA=4
  848. 8480 PUT@ (241,345)-(340,362),MAS7,PSET,%19
  849. 8490 LINE (541,345)-(620,360),PSET,%41,BF
  850. 8500 PUT@ (541,345)-(620,360),MAS4,PSET,%19
  851. 8510 LINE (446,345)-(530,360),PSET,%41,BF
  852. 8520 PUT@ (446,345)-(530,360),MAS1,PSET,%19
  853. 8530 ON (CC=0)*-1 GOTO 8530
  854. 8540 LINE (241,345)-(620,362),PSET,%40,BF:MOUSE(3) OFF:DA=0
  855. 8550 ON (CC=2)*-1 GOTO 5460
  856. 8560 ON AI GOTO 5840,9250
  857. 8570 '--------------------------------------------------------------------
  858. 8580 *P4CK4
  859. 8590 MOUSE(3) ON:ON ERROR GOTO 10660:C(0)=0:CA=0:CC=0:EA=4:DA=5
  860. 8600 PUT@ (241,345)-(354,360),MAS10,PSET,%19
  861. 8610 LINE (380,345)-(430,360),PSET,%31,BF
  862. 8620 LINE (380,345)-(430,360),PSET,%21,B
  863. 8630 LINE (440,345)-(490,360),PSET,%32,BF
  864. 8640 LINE (440,345)-(490,360),PSET,%22,B
  865. 8650 LINE (500,345)-(550,360),PSET,%33,BF
  866. 8660 LINE (500,345)-(550,360),PSET,%23,B
  867. 8670 LINE (560,345)-(610,360),PSET,%34,BF
  868. 8680 LINE (560,345)-(610,360),PSET,%24,B
  869. 8690 ON (CC=0)*-1 GOTO 8690
  870. 8700 LINE (241,345)-(620,362),PSET,%40,BF:MOUSE(3) OFF
  871. 8710 W=CC:DA=0:GOTO 7040
  872. 8720 '--------------------------------------------------------------------
  873. 8730 *ENDCK1 
  874. 8740 STOP OFF:MOUSE(4) OFF
  875. 8750 LINE (241,345)-(620,366),PSET,%40,BF
  876. 8760 MOUSE(3) ON: CA=0:CC=0:EA=5
  877. 8770 PUT@ (241,345)-(386,364),MAS11,PSET,%19
  878. 8780 LINE (541,345)-(620,360),PSET,%41,BF
  879. 8790 PUT@ (549,343)-(613,360),MAS12,PSET,%19
  880. 8800 LINE (446,345)-(530,360),PSET,%41,BF
  881. 8810 PUT@ (456,343)-(520,360),MAS13,PSET,%19
  882. 8820 ON (CC=0)*-1 GOTO 8820
  883. 8830 LINE (241,345)-(620,366),PSET,%40,BF
  884. 8840 MOUSE(3) OFF:MOUSE(4) ON
  885. 8850 ON ERROR GOTO 10660
  886. 8860 ON (CC=2)+1 GOTO 8900
  887. 8870 MOUSE(1) OFF:MOUSE(2) OFF:MOUSE(3) OFF:MOUSE(4) OFF:MOUSE(5) OFF 
  888. 8880 MOUSE 5:KPL=0:FDV=1:PLAY OFF:LINE (0,0)-(1023,511),PSET,%40,BF:FRG=0
  889. 8890 S!=2:GOSUB *WAIT :RETURN 640
  890. 8900 ON DA GOTO 8920,8930,8940,8950,8960
  891. 8910 RETURN
  892. 8920 RETURN *CHOICE
  893. 8930 RETURN 7710
  894. 8940 RETURN 7940
  895. 8950 RETURN 8450
  896. 8960 RETURN 8580
  897. 8970 '--------------------------------------------------------------------
  898. 8980 *ENDCK2 
  899. 8990  STOP OFF:MOUSE(4) OFF
  900. 9000 CHKPLAY=1 :  LINE (241,345)-(620,366),PSET,%40,BF
  901. 9010 MOUSE(3) ON: CA=0:CC=0:EA=5
  902. 9020 LINE (81,485)-(620,506),PSET,%40,BF
  903. 9030 SYMBOL(81,485),"ちょっと負けが込んできましたが、続けますか?",1,1,%19,0,PSET,1
  904. 9040 GET@A (81,485)-(620,506),TEMPTIF
  905. 9050 PUT@A (81,345)-(620,366),TEMPTIF
  906. 9060 LINE (541,345)-(620,360),PSET,%41,BF
  907. 9070 PUT@ (549,343)-(613,360),MAS12,PSET,%19
  908. 9080 LINE (446,345)-(530,360),PSET,%41,BF
  909. 9090 PUT@ (456,343)-(520,360),MAS13,PSET,%19
  910. 9100 ON (CC=0)*-1 GOTO 9100
  911. 9110 LINE (81,345)-(620,366),PSET,%40,BF
  912. 9120 MOUSE(3) OFF:MOUSE(4) ON
  913. 9130 ON ERROR GOTO 10660
  914. 9140 ON (CC=2)+1 GOTO 9200
  915. 9150    '------------------
  916. 9160 MOUSE(1) OFF:MOUSE(2) OFF:MOUSE(3) OFF:MOUSE(4) OFF:MOUSE(5) OFF 
  917. 9170 MOUSE 5:KPL=0:FDV=1:PLAY OFF:LINE (0,0)-(1023,511),PSET,%40,BF:FRG=0
  918. 9180 RETURN *EN
  919. 9190    '------------------
  920. 9200 RETURN
  921. 9210 '--------------------------------------------------------------------
  922. 9220 *IPPATHU
  923. 9230 S!=2:GOSUB *WAIT 
  924. 9240 QS=1:ON (J=4)*-1 GOTO *P4CK3
  925. 9250 P=J:LINE (640,15)-(640,105),PSET,%40,BF
  926. 9260 FOR K=1 TO FUDA(P):C=1:E=1:GOSUB *PRINTING :NEXT
  927. 9270 GET@A (640,15)-(1023,105),TEMPTIF
  928. 9280 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  929. 9290 OUTM #255,&H9D,60,0:OUTM #255,&HBD,&H0A,&H40:OUTM #255,&HBD,&H07,&H7F
  930. 9300 PUT@ (270,30+FNA(P))-(610,89+FNA(P)),IPPATHU,PSET,%64
  931. 9310 OUTM #255,&HCD,&H02:OUTM #255,&H9D,60,127:OUTM #255,&HCB,30
  932. 9320 S!=4:GOSUB *WAIT 
  933. 9330 FOR P=1 TO 4
  934. 9340 ON (P=J)*-1 GOTO 9420 
  935. 9350 LINE (640,15)-(1023,105),PSET,%40,BF:E=1
  936. 9360 PTSTEMP&(P)=PTSTEMP&(P)*2^L
  937. 9370 PTS&(J)=PTS&(J)+FNC&(PTSTEMP&(P)):PTS&(P)=PTS&(P)-FNC&(PTSTEMP&(P))
  938. 9380 FOR K=1 TO FUDA(P):C=1:GOSUB *PRINTING :NEXT
  939. 9390 GET@A (640,15)-(1023,105),TEMPTIF
  940. 9400 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  941. 9410 X=270:GOSUB *PTSPRIN
  942. 9420 NEXT
  943. 9430 S!=20:GOSUB *WAIT
  944. 9440 AGA=J:GOTO *SETUP2
  945. 9450 '--------------------------------------------------------------------
  946. 9460 *USERSET
  947. 9470 FRG=0:ON MOUSE(3) GOSUB *USER1 :MOUSE(3) ON:ON ERROR GOTO 10660
  948. 9480 PUT@ (0,115)-(639,178),TITLE2,PSET,%72
  949. 9490 PUT@A (240,120)-(406,185),TITLE0
  950. 9500 FOR X=4 TO 9:PUT@A (0,59*(X-1))-(639,59*X),TITLE0:NEXT
  951. 9510 PUT@ (241,140)-(405,177),SET02,PSET,%72
  952. 9520 PUT@ (86,211)-(255,247),SET14,PSET,%73
  953. 9530 PUT@ (81,261)-(129,286),SET03,PSET,%74
  954. 9540 PUT@ (78,301)-(131,329),SET04,PSET,%75
  955. 9550 PUT@ (78,341)-(131,364),SET05,PSET,%75
  956. 9560 PUT@ (79,381)-(131,406),SET06,PSET,%75
  957. 9570 PUT@ (171,261)-(268,285),SET07,PSET,%76
  958. 9580 PUT@ (170,301)-(270,326),SET08,PSET,%76
  959. 9590 PUT@ (171,341)-(266,365),SET18,PSET,%76
  960. 9600 PUT@ (435,211)-(505,246),SET13,PSET,%73
  961. 9610 PUT@ (443,261)-(491,286),SET03,PSET,%77
  962. 9620 PUT@ (351,301)-(583,326),SET09,PSET,%77
  963. 9630 PUT@ (351,341)-(583,366),SET10,PSET,%77
  964. 9640 PUT@ (338,381)-(595,405),SET11,PSET,%77
  965. 9650 PUT@ (128,430)-(336,456),SET12,PSET,%73
  966. 9660 PUT@ (373,430)-(421,455),SET03,PSET,%78
  967. 9670 PUT@ (453,430)-(500,455),SET15,PSET,%78
  968. 9680 LINE (495,145)-(605,180),PSET,%43,BF
  969. 9690 PUT@ (501,150)-(597,176),SET16,PSET,%79
  970. 9700 LINE (75,215+40*(USER(0)+1))-(135,250+40*(USER(0)+1)),PSET,%80,B
  971. 9710 LINE (330,215+40*USER(2)/21)-(600,250+40*USER(2)/21),PSET,%80,B
  972. 9720 ON (USER(0)=0)*-1 GOTO 9760
  973. 9730 RB=(USER(1)=-5)+(USER(1)=-3)*2+(USER(1)=0)*3
  974. 9740 LINE (165,215-40*RB)-(275,250-40*RB),PSET,%80,B
  975. 9750 LINE (288+USER(3)*80,425)-(345+USER(3)*80,460),PSET,%80,B
  976. 9760 ON (RA+RC+RE=0)*-1 GOTO 9760
  977. 9770 ON (RC<>0)*-1 GOTO 9840
  978. 9780 ON (RE<>0)*-1 GOTO 9900
  979. 9790 ON (RA>=21)*-1 GOTO 9960
  980. 9800 ON (RA>=5)*-1 GOTO 10010
  981. 9810 ON (RA=0)*-1 GOTO 9760
  982. 9820 GOTO 10130
  983. 9830         '------------------------------------------------------------
  984. 9840 PUT@A (240,120)-(406,185),TITLE0
  985. 9850 FOR X=3 TO 9:PUT@A (0,59*(X-1))-(639,59*X),TITLE0:NEXT
  986. 9860 PUT@ (0,115)-(639,178),TITLE2,PSET,%53
  987. 9870 PUT@ (0,440)-(639,460),TITLE5,PSET,%54
  988. 9880 RA=0:RC=0:RE=0:GOTO *SETUP1
  989. 9890          '-----------------------------------------------------------
  990. 9900 ON (USER(3)=RE)*-1 GOTO 9760
  991. 9910 ON (USER(0)<2)*-1 GOTO 9760
  992. 9920 LINE (288+USER(3)*80,425)-(345+USER(3)*80,460),PSET,%82,B
  993. 9930 LINE (288+RE*80,425)-(345+RE*80,460),PSET,%80,B
  994. 9940 USER(3)=RE:RE=0:GOTO 9760
  995. 9950           '----------------------------------------------------------
  996. 9960 ON (USER(2)=RA)*-1 GOTO 9760
  997. 9970 LINE (330,215+40*USER(2)/21)-(600,250+40*USER(2)/21),PSET,%82,B
  998. 9980 LINE (330,215+40*RA/21)-(600,250+40*RA/21),PSET,%80,B
  999. 9990 USER(2)=RA:RA=0:GOTO 9760
  1000. 10000            '---------------------------------------------------------
  1001. 10010 ON (RA=20)*-1 GOTO 9760
  1002. 10020 ON (USER(1)=0)*(RA=15) GOTO 9760
  1003. 10030 ON (USER(1)=3)*(RA=10) GOTO 9760
  1004. 10040 ON (USER(1)=5)*(RA=5)  GOTO 9760
  1005. 10050 ON (USER(0)=0)*-1 GOTO 9760
  1006. 10060 RB=(3*(RA=5)+2*(RA=10)+(RA=15))*-1
  1007. 10070 LINE (165,255)-(275,290),PSET,%82,B
  1008. 10080 LINE (165,295)-(275,330),PSET,%82,B
  1009. 10090 LINE (165,335)-(275,370),PSET,%82,B
  1010. 10100 LINE (165,215+40*RA/5)-(275,250+40*RA/5),PSET,%80,B
  1011. 10110 USER(1)=(RA=5)*5+(RA=10)*3:RA=0:GOTO 9760
  1012. 10120             '--------------------------------------------------------
  1013. 10130 ON (USER(0)=RA-1)*-1 GOTO 9760
  1014. 10140 LINE (75,215+40*(USER(0)+1))-(135,250+40*(USER(0)+1)),PSET,%82,B
  1015. 10150 LINE (75,215+40*RA)-(135,250+40*RA),PSET,%80,B
  1016. 10160 USER(0)=RA-1:RA=0 
  1017. 10170 ON (USER(0)=0)+1 GOTO 10200
  1018. 10180 RB=(USER(1)=-5)+(USER(1)=-3)*2+(USER(1)=0)*3
  1019. 10190 LINE (165,215-40*RB)-(275,250-40*RB),PSET,%82,B
  1020. 10200 ON (USER(0)<2)+1 GOTO 10220
  1021. 10210 LINE (288+USER(3)*80,425)-(345+USER(3)*80,460),PSET,%82,B
  1022. 10220 ON (USER(0)>0)+1 GOTO 10250
  1023. 10230 RB=(USER(1)=-5)+(USER(1)=-3)*2+(USER(1)=0)*3
  1024. 10240 LINE (165,215-40*RB)-(275,250-40*RB),PSET,%80,B
  1025. 10250 ON (USER(0)>1)+1 GOTO 10270
  1026. 10260 LINE (288+USER(3)*80,425)-(345+USER(3)*80,460),PSET,%80,B
  1027. 10270 GOTO 9760
  1028. 10280     '----------------------------------------------------------------
  1029. 10290 *USER1:MOUSE(3) STOP : ON ERROR GOTO 10660
  1030. 10300 F0=MOUSE(4,0):F1=MOUSE(5,0):F3=MOUSE(7,0):F4=MOUSE(8,0)
  1031. 10310 RA=FNL(F0)*FNM(F1):RB=FNL(F3)*FNM(F4):RA=RA*(RA=RB)*-1
  1032. 10320 RC=FNN(F0,F1):RD=FNN(F3,F4):RC=RC*(RC=RD)*-1
  1033. 10330 RE=FNO(F0,F1):RF=FNO(F3,F4):RE=RE*(RE=RF)*-1
  1034. 10340 MOUSE(3) ON:ON ERROR GOTO 10660:RETURN
  1035. 10350 '--------------------------------------------------------------------
  1036. 10360 *NAGACK
  1037. 10370 NAGA(0,0)=0:NAGA(0,1)=0:FOR NE=1 TO 4
  1038. 10380 NAGA(NE,1)=PONFRG(NE,2)+PONFRG(NE,8)+PONFRG(NE,14)
  1039. 10390 NAGA(NE,2)=PONFRG(NE,14)
  1040. 10400 NAGA(NE,3)=PONFRG(NE,2)+PONFRG(NE,8)+PONFRG(NE,11)+PONFRG(NE,14)
  1041. 10410 ON USER(2)\21 GOTO 10460,10420,10430,10440
  1042. 10420 NF=(NAGA(NE,1)>=3)*-1:GOTO 10450
  1043. 10430 NF=(NAGA(NE,1)>=4)*-1:GOTO 10450
  1044. 10440 NF=(NAGA(NE,3)>=4)*-1:GOTO 10450
  1045. 10450 ON (NF=1)*-1 GOTO 10550
  1046. 10460 ON USER(3) GOTO 10480,10470
  1047. 10470 ON (NAGA(NE,2)>=2)*-1 GOTO 10550
  1048. 10480 NEXT
  1049. 10490 NAGA(0,1)=NAGA(0,1)+NAGA(0,0)
  1050. 10500 ON (NAGA(0,1)>0)*-1 GOTO 10520
  1051. 10510 GOTO 2680
  1052. 10520 S!=20:GOSUB *WAIT:AGA=Z: GOTO *SETUP2
  1053. 10530    '-----------------------------------------------------------------
  1054. 10540 S!=5:GOSUB *WAIT
  1055. 10550 NAGA(0,0)=1:LINE (640,15)-(1023,105),PSET,%40,BF
  1056. 10560 P=NE:FOR K=1 TO FUDA(NE):E=1:C=1:GOSUB *PRINTING :NEXT
  1057. 10570 GET@A (640,15)-(1023,105),TEMPTIF
  1058. 10580 PUT@A (250,FNA(P)+15)-(633,FNA(P)+105),TEMPTIF
  1059. 10590 PUT@ (270,37+FNA(NE))-(442,88+FNA(NE)),NAGARE,PSET,%66 
  1060. 10600 GOTO 10480
  1061. 10610 '--------------------------------------------------------------------
  1062. 10620 *EN
  1063. 10630 OUT &H5EC,VAL(QPL$)
  1064. 10640 END
  1065. 10650 '--------------------------------------------------------------------
  1066. 10660 *ERRORTRAP
  1067. 10670 ON (ERL=6290)*-1 GOTO 11220
  1068. 10680 MOUSE 5 :KPL=0 :  BEEP 1 : PLAY OFF 
  1069. 10690 ON ((ERR= 7)+(ERR=82)+(ERR=83)+(ERR=89))*-1 GOTO 10820
  1070. 10700 ON ((ERR=60)+(ERR=72)+(ERR=75)+(ERR=53))*-1 GOTO 10880
  1071. 10710 ON (ERR=63)*-1 GOTO 10940
  1072. 10720 ON (ERL=340)*-1 GOTO 11000
  1073. 10730 ON (ERL=190)*-1 GOTO 10820
  1074. 10740 ON (ERR=99)*-1 GOTO 11000
  1075. 10750 '--------------------------------------------------------------------
  1076. 10760 ERRMAS1$="           ごめんなさい!           "
  1077. 10770 ERRMAS2$="予期せぬバグが発生してしまいました。"
  1078. 10780 ERRMAS3$=" お手数ですが、状況と以下のデータを "
  1079. 10790 ERRMAS4$="      作者まで連絡してください。    "
  1080. 10800 ERRMAS5$="            ゴメンナサイ (^^;)           "
  1081. 10810 GOTO 11060
  1082. 10820 ERRMAS1$="          CAUTION!          "
  1083. 10830 ERRMAS2$="      メモリが足りないようです。    "
  1084. 10840 ERRMAS3$="     RAMディスクを解除するか     "
  1085. 10850 ERRMAS4$="      サイドワークを外してから      "
  1086. 10860 ERRMAS5$="     もう一度立ち上げてください。   "
  1087. 10870 GOTO 11060
  1088. 10880 ERRMAS1$="          CAUTION!          "
  1089. 10890 ERRMAS2$="途中でディスクを抜きませんでしたか?"
  1090. 10900 ERRMAS3$="    ディスクは壊れていませんか?    "
  1091. 10910 ERRMAS4$=" ちゃんとディスクは入っていますか? "
  1092. 10920 ERRMAS5$="確認してから再度立ち上げてください。"
  1093. 10930 GOTO 11060
  1094. 10940 ERRMAS1$="          CAUTION!          "
  1095. 10950 ERRMAS2$="      ファイルが見つかりません。    "
  1096. 10960 ERRMAS3$="途中でディスクを抜きませんでしたか?"
  1097. 10970 ERRMAS4$="  ファイルは全部そろっていますか?  "
  1098. 10980 ERRMAS5$="確認してから再度立ち上げてください。"
  1099. 10990 GOTO 11060
  1100. 11000 ERRMAS1$="          WARNING!          "
  1101. 11010 ERRMAS2$="   NIPPATHI.CFG の内容が不正です。  "
  1102. 11020 ERRMAS3$="                                    "
  1103. 11030 ERRMAS4$="        申し訳ありませんが、        "
  1104. 11040 ERRMAS5$="不正部分には内部規定値を使用します。"
  1105. 11050          '-----------------------------------------------------------
  1106. 11060 LINE (140,120)-(520,400),PSET,%255+(ERL<240)*240,BF
  1107. 11070 LINE (140,120)-(520,400),PSET,%19+(ERL<240)*19,B
  1108. 11080 SYMBOL (190,150),ERRMAS1$,1,1,%64+(ERL<240)*54,,,1
  1109. 11090 SYMBOL (190,190),ERRMAS2$,1,1,%19+(ERL<240)*19,,,1
  1110. 11100 SYMBOL (190,213),ERRMAS3$,1,1,%19+(ERL<240)*19,,,1
  1111. 11110 SYMBOL (190,236),ERRMAS4$,1,1,%19+(ERL<240)*19,,,1
  1112. 11120 SYMBOL (190,259),ERRMAS5$,1,1,%19+(ERL<240)*19,,,1
  1113. 11130 'ON (ERR=99)*-1 GOTO 11170
  1114. 11140 SYMBOL (300,300),"ERR ="+STR$(ERR),1,1,%64+(ERL<240)*54
  1115. 11150 SYMBOL (300,320),"ERL ="+STR$(ERL),1,1,%64+(ERL<240)*54
  1116. 11160 SYMBOL (300,340),"VER = "+VER$,1,1,%64+(ERL<240)*54
  1117. 11170 SYMBOL (230,370),"リターンキーを押してください",1,1,%19+(ERL<240)*19,,,1
  1118. 11180 ON (INKEY$<>CHR$(&HD))*-1 GOTO 11180
  1119. 11190 ON (ERR=99)*-1 GOTO 11240
  1120. 11200 BEEP 0 : OUT &H5EC,VAL(QPL$) : END
  1121. 11210          '-----------------------------------------------------------
  1122. 11220 RESUME 6300
  1123. 11230          '-----------
  1124. 11240 BEEP 0 : CLS : RESUME 550
  1125. 11250 '--------------------------------------------------------------------
  1126. 11260 '                                                  September 27, 1994
  1127. 11270 '                                                          Hoshitora.
  1128.